package com.library.admin.modules.borrowing.service;

import com.library.admin.modules.borrowing.entity.Borrowing;
import com.library.admin.modules.borrowing.vo.BorrowingVO;
import com.library.admin.modules.borrowing.bo.BorrowingPage;
import com.library.admin.modules.borrowing.bo.BorrowingInsert;
import com.library.admin.modules.borrowing.bo.BorrowingUpdate;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.math.BigDecimal;

/**
 * @Author xyh
 * @Desc 借阅记录表(Borrowing)表服务接口
 * @Date 2023-11-09 13:35:13
 */
public interface BorrowingService extends IService<Borrowing> {

    /**
     * 分页查询
     */
    IPage<BorrowingVO> queryByPage(BorrowingPage page);

    /**
     * 根据ID查详情
     */
    BorrowingVO queryById(Integer id);

    /**
     * 新增数据
     */
    boolean insert(BorrowingInsert borrowingInsert);

    /**
     * 修改数据
     */
    boolean update(BorrowingUpdate borrowingUpdate);

    /**
     * 通过主键删除数据
     */
    boolean deleteById(Integer id);

    /**
     * 还书
     * @param id
     */
    void returnBook(Integer id);

    /**
     * 更新用户费用
     *
     * @param fee
     * @param userId
     */
    void updateUserBalance(BigDecimal fee, Integer userId);

    /**
     * 定时通知还书
     */
    void scheduledNotice();
}
